package com.leyca;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;


public class DataBaseHelper {

    public static final String KEY_ANOTACION = "anotacion";
    public static final String KEY_DATO = "dato";
    public static final String KEY_FECHA = "fecha";

    private static final String TAG = "DataBaseHelper";
    private DatabaseHelper mDbHelper;
    private SQLiteDatabase mDb;
    
    /**
     * Database creation sql statement
     */
    private static final String TABLE_CREATE = "CREATE TABLE medidas (fecha DATETIME PRIMARY KEY, dato FLOAT(4), anotacion VARCHAR(100))";

	private String INSERCION = new String("insert into medidas values (strftime('%d-%m-%Y %H:%M:%S'),");

	  
    
    private static final String DATABASE_NAME = "datosd8";
    private static final String DATABASE_TABLE = "medidas";
    private static final int DATABASE_VERSION = 1;

    private final Context mCtx;

    private static class DatabaseHelper extends SQLiteOpenHelper {

        DatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(TABLE_CREATE);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            Log.w(TAG, "Actualizando desde la versión " + oldVersion + " a "
                    + newVersion + ", lo cual destruirá todos los datos anteriores");
            db.execSQL("DROP TABLE IF EXISTS medidas");
            onCreate(db);
        }
    }

    /**
     * Constructor - takes the context to allow the database to be
     * opened/created
     * 
     * @param ctx the Context within which to work
     */
    public DataBaseHelper(Context ctx) {
        this.mCtx = ctx;
    }

   
    public DataBaseHelper open() throws SQLException {
        mDbHelper = new DatabaseHelper(mCtx);
        mDb = mDbHelper.getWritableDatabase();
        return this;
    }
    
    public void close() {
        mDbHelper.close();
    }

    
    public void createMedida(String dato) {

    	INSERCION+= dato;
    	
    	mDb.execSQL(INSERCION);
    }

  
    public boolean deleteMedida(String fechaId) {
    	fechaId="'"+fechaId+"'";
        return mDb.delete(DATABASE_TABLE, KEY_FECHA + "=" + fechaId, null) > 0;
    }

    
    public Cursor fetchAllMedidas() {

        return mDb.query(DATABASE_TABLE, new String[] {KEY_FECHA, KEY_ANOTACION,
                KEY_DATO}, null, null, null, null, null);
    }

   
    public Cursor fetchMedida(String fechaId) throws SQLException {

    	fechaId= "'"+fechaId+"'";
        Cursor mCursor =

                mDb.query(true, DATABASE_TABLE, new String[] {KEY_FECHA,
                        KEY_ANOTACION, KEY_DATO}, KEY_FECHA + "=" + fechaId, null,
                        null, null, null, null);
        if (mCursor != null) {
            mCursor.moveToFirst();
        }
        return mCursor;
    }

    public boolean updateMedida(String fechaId, String anotacion, String dato) {
        ContentValues args = new ContentValues();
        args.put(KEY_ANOTACION, anotacion);
        args.put(KEY_DATO, dato);
        fechaId="'"+fechaId+"'";

        return mDb.update(DATABASE_TABLE, args, KEY_FECHA + "=" + fechaId, null) > 0;
    }
}
